

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Usage &mdash; VideoTester 0.2 documentation</title>
    
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '0.2',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="shortcut icon" href="_static/VTfavicon.png"/>
    <link rel="top" title="VideoTester 0.2 documentation" href="index.html" />
    <link rel="next" title="HOWTO: Implementing new metrics" href="howto.html" />
    <link rel="prev" title="Configuration" href="configuration.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="howto.html" title="HOWTO: Implementing new metrics"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="configuration.html" title="Configuration"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">VideoTester 0.2 documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="usage">
<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h1>
<div class="section" id="server-mode">
<h2>Server mode<a class="headerlink" href="#server-mode" title="Permalink to this headline">¶</a></h2>
<p>You can launch Video Tester in server mode with the following command:</p>
<div class="highlight-python"><pre>$ VT server</pre>
</div>
<p>No more operation is required. The server waits for client requests in standalone mode.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Use <tt class="docutils literal"><span class="pre">Ctrl</span> <span class="pre">+</span> <span class="pre">C</span></tt> to stop it.</p>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The current working directory MUST contain the <tt class="docutils literal"><span class="pre">VT.conf</span></tt> file (see <a class="reference internal" href="configuration.html"><em>Configuration</em></a>).</p>
</div>
</div>
<div class="section" id="client-mode">
<h2>Client mode<a class="headerlink" href="#client-mode" title="Permalink to this headline">¶</a></h2>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">VT client requires root privileges (for network sniffing).</p>
</div>
<p>You can launch Video Tester in client mode with the following command:</p>
<div class="highlight-python"><pre>$ VT client</pre>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The current working directory MUST contain the <tt class="docutils literal"><span class="pre">VT.conf</span></tt> file (see <a class="reference internal" href="configuration.html"><em>Configuration</em></a>).</p>
</div>
<p>If you want to specify another configuration file, use the option <tt class="docutils literal"><span class="pre">-c</span></tt> (or <tt class="docutils literal"><span class="pre">--conf</span></tt>):</p>
<div class="highlight-python"><pre>$ VT client -c another.conf</pre>
</div>
<p>You can use VT client with graphical user interface (GUI) with the option <tt class="docutils literal"><span class="pre">-g</span></tt> (or <tt class="docutils literal"><span class="pre">--gui</span></tt>):</p>
<div class="highlight-python"><pre>$ VT client -g</pre>
</div>
</div>
<div class="section" id="generated-files">
<h2>Generated files<a class="headerlink" href="#generated-files" title="Permalink to this headline">¶</a></h2>
<p>After the client execution, the log file is located (relative to the current working directory) at <tt class="docutils literal"><span class="pre">temp/VT.log</span></tt>. Furthermore, you can find a set of files in this directory : <tt class="docutils literal"><span class="pre">temp/&lt;video&gt;_&lt;codec&gt;_&lt;bitrate&gt;_&lt;framerate&gt;_&lt;protocol&gt;</span></tt> (e. g.: <tt class="docutils literal"><span class="pre">temp/video0_h263_128_25_udp-unicast</span></tt>). The name of these files starts with a numerical prefix (e. g.: <tt class="docutils literal"><span class="pre">00</span></tt>, <tt class="docutils literal"><span class="pre">01</span></tt>...):</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">00.cap</span></tt>: PCAP file.</li>
<li><tt class="docutils literal"><span class="pre">00.h263</span></tt>: received video (coded).</li>
<li><tt class="docutils literal"><span class="pre">00.yuv</span></tt>: received video (YUV).</li>
<li><tt class="docutils literal"><span class="pre">00_ref.h263</span></tt>: reference video (coded but not transmitted).</li>
<li><tt class="docutils literal"><span class="pre">00_ref.yuv</span></tt>: reference video (coded and decoded).</li>
<li><tt class="docutils literal"><span class="pre">00_ref_original.yuv</span></tt>: original reference video (uncompressed original file).</li>
<li><tt class="docutils literal"><span class="pre">00_caps.txt</span></tt>: GStreamer &#8220;caps&#8221; for YUV format.</li>
<li><tt class="docutils literal"><span class="pre">00_&lt;measure&gt;.pkl</span></tt>: serialized measure in Pickle format.</li>
</ul>
<p>Pickle files can be read with the GUI (<em class="menuselection">File ‣ Open files...</em>).</p>
</div>
<div class="section" id="measures-output">
<h2>Measures output<a class="headerlink" href="#measures-output" title="Permalink to this headline">¶</a></h2>
<p>Video Tester returns a list of measures. Each measure is a Python dictionary with the following keys:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">name</span></tt> (mandatory): the name.</li>
<li><tt class="docutils literal"><span class="pre">type</span></tt> (mandatory): the type (&#8220;plot&#8221;, &#8220;bar&#8221; or &#8220;value&#8221;).</li>
<li><tt class="docutils literal"><span class="pre">units</span></tt> (mandatory): the units (a string for &#8220;value&#8221; measures, a tuple of strings for &#8220;plot&#8221; or &#8220;bar&#8221; measures).</li>
<li><tt class="docutils literal"><span class="pre">axes</span></tt> (only for &#8220;plot&#8221; and &#8220;bar&#8221; measures): a tuple with X and Y axes. Each axis is a list of values.</li>
<li><tt class="docutils literal"><span class="pre">min</span></tt> (only for &#8220;plot&#8221; and &#8220;bar&#8221; measures): minimum value.</li>
<li><tt class="docutils literal"><span class="pre">max</span></tt> (only for &#8220;plot&#8221; and &#8220;bar&#8221; measures): maximum value.</li>
<li><tt class="docutils literal"><span class="pre">mean</span></tt> (only for &#8220;plot&#8221; and &#8220;bar&#8221; measures): mean value.</li>
<li><tt class="docutils literal"><span class="pre">value</span></tt> (only for &#8220;value&#8221; measures): the value.</li>
<li><tt class="docutils literal"><span class="pre">width</span></tt> (only for &#8220;bar&#8221; measures): bar width.</li>
</ul>
<p>An example of &#8220;plot&#8221; measure:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">{</span> <span class="s">&#39;name&#39;</span><span class="p">:</span><span class="s">&#39;Bandwidth&#39;</span><span class="p">,</span> <span class="s">&#39;type&#39;</span><span class="p">:</span><span class="s">&#39;plot&#39;</span><span class="p">,</span> <span class="s">&#39;units&#39;</span><span class="p">:(</span><span class="s">&#39;time (s)&#39;</span><span class="p">,</span> <span class="s">&#39;kbps&#39;</span><span class="p">),</span> <span class="s">&#39;axes&#39;</span><span class="p">:([</span><span class="o">...</span><span class="p">],</span> <span class="p">[</span><span class="o">...</span><span class="p">]),</span> <span class="s">&#39;min&#39;</span><span class="p">:(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">),</span> <span class="s">&#39;max&#39;</span><span class="p">:(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="s">&#39;mean&#39;</span><span class="p">:</span><span class="mi">5</span> <span class="p">}</span>
</pre></div>
</div>
<p>An example of &#8220;bar&#8221; measure:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">{</span> <span class="s">&#39;name&#39;</span><span class="p">:</span><span class="s">&#39;PLD&#39;</span><span class="p">,</span> <span class="s">&#39;type&#39;</span><span class="p">:</span><span class="s">&#39;bar&#39;</span><span class="p">,</span> <span class="s">&#39;units&#39;</span><span class="p">:(</span><span class="s">&#39;time (s)&#39;</span><span class="p">,</span> <span class="s">&#39;Packet Loss Rate&#39;</span><span class="p">),</span> <span class="s">&#39;axes&#39;</span><span class="p">:([</span><span class="o">...</span><span class="p">],</span> <span class="p">[</span><span class="o">...</span><span class="p">]),</span> <span class="s">&#39;min&#39;</span><span class="p">:(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">),</span> <span class="s">&#39;max&#39;</span><span class="p">:(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="s">&#39;mean&#39;</span><span class="p">:</span><span class="mi">5</span><span class="p">,</span> <span class="s">&#39;width&#39;</span><span class="p">:</span><span class="mi">1</span> <span class="p">}</span>
</pre></div>
</div>
<p>An example of &#8220;value&#8221; measure:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">{</span> <span class="s">&#39;name&#39;</span><span class="p">:</span><span class="s">&#39;Latency&#39;</span><span class="p">,</span> <span class="s">&#39;type&#39;</span><span class="p">:</span><span class="s">&#39;value&#39;</span><span class="p">,</span> <span class="s">&#39;units&#39;</span><span class="p">:</span><span class="s">&#39;ms&#39;</span><span class="p">,</span> <span class="s">&#39;value&#39;</span><span class="p">:</span><span class="mi">50</span> <span class="p">}</span>
</pre></div>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="index.html">
              <img class="logo" src="_static/VT200x170.png" alt="Logo"/>
            </a></p>
  <h3><a href="index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Usage</a><ul>
<li><a class="reference internal" href="#server-mode">Server mode</a></li>
<li><a class="reference internal" href="#client-mode">Client mode</a></li>
<li><a class="reference internal" href="#generated-files">Generated files</a></li>
<li><a class="reference internal" href="#measures-output">Measures output</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="configuration.html"
                        title="previous chapter">Configuration</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="howto.html"
                        title="next chapter">HOWTO: Implementing new metrics</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/usage.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="howto.html" title="HOWTO: Implementing new metrics"
             >next</a> |</li>
        <li class="right" >
          <a href="configuration.html" title="Configuration"
             >previous</a> |</li>
        <li><a href="index.html">VideoTester 0.2 documentation</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2013, Iñaki Úcar.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
  </body>
</html>